package com.kkazmierczyk.freestyle;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
/**
* This servlet is used to browse all data
*
* @version $Id: BrowseDataServlet.java 13 2008-05-29 16:13:34Z kazik $
*/
public class BrowseDataServlet extends HttpServlet {
/** Logger instance. */
private final static Logger logger = Logger
.getLogger(BrowseDataServlet.class);
@SuppressWarnings("unchecked")
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
EntityManager em = null;
EntityTransaction tx = null;
Writer writer = null;
try {
EntityManagerFactory emf = (EntityManagerFactory) getServletContext()
.getAttribute("emf");
em = emf.createEntityManager();
tx = em.getTransaction();
tx.begin();
final Query q = em.createQuery("from LoggedRequest");
final List<LoggedRequest> result = q.getResultList();
tx.commit();
resp.setHeader("Content-type", "text/html; charset=utf-8");
writer = new OutputStreamWriter(resp.getOutputStream(), "utf-8");
writer.write("<html><head>"
+ "<meta http-equiv=\"content-type\" content=\"utf-8\">"
+ "<meta name=\"robots\" content=\"none\">"
+ "</head><body>");
writer.write("<table>");
for (LoggedRequest loggedRequest : result) {
writer.write("<tr><td>" + loggedRequest.getAgent()
+ "</td><td>" + loggedRequest.getPath() + "</td><td>"
+ loggedRequest.getDate() + "</tr>");
}
writer.write("</table>");
writer.write("</body></html>");
} catch (Exception e) {
logger.error(e);
} finally {
if (writer != null) {
writer.close();
}
if (tx != null && tx.isActive()) {
tx.rollback();
}
if (em != null && em.isOpen()) {
em.close();
}
}
}
}